//----------------------------------------------------------------------------------------------
//	Filename:	DepthIntegrator.h
//	Author:		Sandro Spina
//	Date:		27/07/2012
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
#pragma once

#include "Integrator/Integrator.h"
//----------------------------------------------------------------------------------------------
namespace Illumina
{
	namespace Core
	{
		class DepthIntegrator 
			: public IIntegrator
		{

		public:
			DepthIntegrator(const std::string &p_strName);
			DepthIntegrator(void);

			bool Initialise(Scene *p_pScene, ICamera *p_pCamera);
			bool Shutdown(void);

			Spectrum Radiance(IntegratorContext *p_pContext, Scene *p_pScene, const Ray &p_ray, Intersection &p_intersection, RadianceContext *p_pRadianceContext = NULL);
			Spectrum Radiance(IntegratorContext *p_pContext, Scene *p_pScene, Intersection &p_intersection, RadianceContext *p_pRadianceContext = NULL);					
		
		};
	}
}